package com.xydtech.ecard.busi.mapper;

import com.xydtech.ecard.busi.domain.EcardApiBusiConfigList;
import com.xydtech.ecard.config.domain.EcardBusiConfigList;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 电子名片业务填报类型配置积分明细Mapper接口
 *
 * @author yuzhiguo
 * @date 2024-09-29 上午9:48
 */
public interface EcardApiBusiConfigListMapper
{
    /**
     * 查询电子名片业务填报类型配置积分明细
     *
     * @param id 电子名片业务填报类型配置积分明细主键
     * @return 电子名片业务填报类型配置积分明细
     */
    public EcardBusiConfigList selectEcardBusiConfigListById(Long id);

    /**
     * 查询电子名片业务填报类型配置积分明细列表
     *
     * @param ecardBusiConfigList 电子名片业务填报类型配置积分明细
     * @return 电子名片业务填报类型配置积分明细集合
     */
    public List<EcardBusiConfigList> selectEcardBusiConfigListList(EcardBusiConfigList ecardBusiConfigList);

    /**
     * 新增电子名片业务填报类型配置积分明细
     *
     * @param ecardBusiConfigList 电子名片业务填报类型配置积分明细
     * @return 结果
     */
    public int insertEcardBusiConfigList(EcardBusiConfigList ecardBusiConfigList);

    /**
     * 修改电子名片业务填报类型配置积分明细
     *
     * @param ecardBusiConfigList 电子名片业务填报类型配置积分明细
     * @return 结果
     */
    public int updateEcardBusiConfigList(EcardBusiConfigList ecardBusiConfigList);

    /**
     * 删除电子名片业务填报类型配置积分明细
     *
     * @param id 电子名片业务填报类型配置积分明细主键
     * @return 结果
     */
    public int deleteEcardBusiConfigListById(Long id);

    /**
     * 批量删除电子名片业务填报类型配置积分明细
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteEcardBusiConfigListByIds(String[] ids);

    /**
     * 查询个人类存款积分规则明细
     *
     * @param configId
     * @param dpsType
     * @param dpsTerm
     * @param dpsAmount
     * @return
     */
    EcardApiBusiConfigList selectEcardBusiConfigByDps(@Param("configId") String configId,
                                                 @Param("dpsType") String dpsType,
                                                 @Param("dpsTerm") String dpsTerm,
                                                 @Param("dpsAmount") Long dpsAmount);

    /**
     * 查询个人类贷款积分规则明细
     *
     * @param configId
     * @param loanType
     * @param loanTerm
     * @param loanRate
     * @param loanAmount
     * @return
     */
    EcardApiBusiConfigList selectEcardBusiConfigByLoan(@Param("configId") String configId,
                                                       @Param("loanType") String loanType,
                                                       @Param("loanTerm") String loanTerm,
                                                       @Param("loanRate") Float loanRate,
                                                       @Param("loanAmount") Long loanAmount);

    /**
     * 查询个人类社保卡积分规则明细
     *
     * @param configId
     * @param perSocialType
     * @return
     */
    EcardApiBusiConfigList selectEcardBusiConfigBySocialType(@Param("configId") String configId, @Param("perSocialType") String perSocialType);

    /**
     * 查询对公类国际业务积分规则明细
     *
     * @param configId
     * @param pubSettlementAmount
     * @return
     */
    EcardApiBusiConfigList selectEcardBusiConfigByInternational(@Param("configId") String configId, @Param("pubSettlementAmount") Long pubSettlementAmount);

    /**
     * 查询其他类贵金属业务积分规则明细
     *
     * @param configId
     * @param othAmount
     * @return
     */
    EcardApiBusiConfigList selectEcardBusiConfigByMetals(@Param("configId") String configId,
                                                         @Param("othPrdType") String othPrdType,
                                                         @Param("othAmount") Long othAmount);
}
